#include<bits/stdc++.h>
using namespace std;
int find(int x);
void join (int x,int y);
int pre[30005];
int main(){
	int n,m,i,j,number,cut,max=0,k=0;
	cin>>n>>m;
	int b[n+1];
	for(i=1;i<=n;i++){
		 pre[i]=i;
		 b[i]=0;
	}
	for(i=0;i<m;i++){
		cin>>number;
		int a[number+1];
		for(j=1;j<=number;j++){
			cin>>a[j];
		}
		for(j=2;j<=number;j++){
			join(a[j],a[j-1]);
		}
	}
	for(i=1;i<=n;i++){
		cut=find(i);
		b[cut]++;
		if(b[cut]>max) max=b[cut];
	}
	cout<<max;
}
int find(int x){
    int r=x;
    while(pre[r]!=r)
    r=pre[r];
    return r;
}
void join(int x,int y)
{
    int a=find(x);
    int b=find(y);
    if(a!=b)
    {
        pre[a]=b;
    }
}
